package com.tgy.util;

/**
 * @Author: tgy
 * @Date: 2020-08-28 09:12
 */
public interface List<E> {

    int NOT_FOUND_ELEMENT = -1;

    /**
     * 获取list size
     * @return
     */
    int size();

    /**
     * 判断list是否为空
     * @return
     */
    boolean isEmpty();

    /**
     * 是否包含element元素
     * @param element
     * @return
     */
    boolean contains(E element);

    /**
     * 向list中添加元素
     * @param element
     */
    void add(E element);

    /**
     * 获取list中index位置的元素
     * @param index
     * @return
     */
    E get(int index);

    /**
     * 在 index位设置元素
     * @param index
     * @param element
     * @return
     */
    E set(int index,E element);

    /**
     * 向 index 位置添加元素
     * @param index
     * @param element
     */
    void add(int index, E element);

    /**
     * 移除 index位置的元素
     * @param index
     * @return
     */
    E remove(int index);

    /**
     * 获取元素所在的位置
     * @param element
     * @return
     */
    int indexof(E element);

    /**
     * 清除元素
     */
    void clear();
}
